Agile Funding Model: Budgeting for Agile Software Development

agile budgeting

What is the best funding model for Agile projects?

Can you have fixed cost Agile projects?

What does it mean to invert the iron triangle?


To be able to understand the Agile Funding Model we need to first discuss what it means to invert the iron triangle.

The project management triangle

The Iron Triangle (or Project Management Triangle, or Triple Constraint) is a model in project management used to illustrate the factors that constrain projects. The iron triangle shows that:

  • Quality is always constrained by Time, Budget, and Scope.
  • Changes to one constraint means other constraints need to change otherwise quality will be impacted.
  • Trade-offs need to be made between constraints for successful project execution.

According to this model it is impossible to commit to fixed cost, time, and scope of a project while maintaining quality.

Project Management Triangle

Traditional approach to project management

In traditional project management we take the following steps more or less with similar order.

  1. Define what we want to build
  2. Define the detailed requirements to illustrate what our solution will look like
  3. Break down the project into tasks via a work breakdown structure (WBS)
  4. Figure out what skills we need to achieve the tasks
  5. Hire the required human resources for the project according to the skills required
  6. Estimate the tasks
  7. Lay out a plan based on dependencies, who is going to do what by when
  8. Calculate the time when the project is going to be finished based on the plan
  9. Calculate the cost of the project based on resources accounted for in the plan
  10. Execute (wishful thinking)

And this is what’s going to happen next. Every single time. There is no exception:

Things will not go according to the plan and changing the plan during the execution means the project constraints will be affected. This means significant reduction of quality, cost overruns, long delays, not delivering the committed requirements, or project complete failure.

Why projects Fails


So there are few options here, remember we can trade off the iron triangle constrains:

  1. Add a lot of fat to your cost estimate
  2. Add a lot of fat to your time estimate
  3. Hide the poor quality of the product (apply lipstick to the pig!)
  4. Trade-offs with Scope is usually the hardest

The third option is relatively easy in software products. This lack of quality will only become visible once users start using the system, or later when change is required to the system. The cost of change will be significantly high because of tech debt built into the solution.

Inverting the iron triangle

Agile has a very simple solution to this problem: change your view from “the world is predictable” to “the world is unpredictable”. How can we do that? By not committing to detailed requirements.
This is the recommended process based on Lean and Agile ways of working:

  1. Define the high level outcome you’d like to achieve (not the output). This is the problem to be solved.
  2. Decide a date when you’d like to have this delivered.
  3. Empower your existing team to design and build a solution for this problem:
    • The team needs to solve the problem by the given date.
    • They may choose to design the solution based on current availability of skills.
    • Quality must be reasonable.
    • They are completely free to decide what the scope of work is as long as the solution addresses the specified problem.
    • Use iterative and incremental approach with empirical decision making.
  4. The exact project cost is easy to calculate. The size and salary of the team is known, the delivery date is fixed. Team cost x project duration = project cost

So what is the difference of outcome and output? An example of an output is “I’d like an online book store website”. While an example of outcome is “I’d like to be able to sell books internationally”.

In this model the customer specifies the outcome they are after not the output they are after. And the team decided what is the best output to help the customer achieve their desired outcome. For example, maybe we should be using an eBay store as a starter to sell books online. Or maybe a mobile app suits the target market better than a website.

So basically we are articulating a problem. “What are we trying to achieve?” We will not be describing a solution. requirements describe a solution. We want to focus on the problem and let the team come up with the solution based on Lean Startup techniques, Agile ways of working, and empiricism.

Lean Budgeting

Using this model, the customer will often get something they didn’t expect but it will always be something more valuable as it has been built iteratively and incrementally based on empirical evidence rather than human predictions.

This is what we mean by inverting the iron triangle. Instead of fixing scope and deriving the cost and time we will be fixing the time and cost and derive the scope

inverted iron triangleCredit: Scaled Agile Inc.

In the Leading SAFe® (SAFe® Agilist) course we teach how lean portfolio management uses the inverted iron triangle to enable lean funding instead of traditional cost centre funding. The summary of this funding model is described below.

The agile funding model

With Iron triangle inverted we can now fund teams instead of projects. This means we are moving from a push method of work allocation to a pull method of work allocation. To better understand this I’ll provide an example.

Let’s say we have a team of 100 people. And let’s say each person has an average day rate of $1000. Assuming a year contains 250 business days, this team will cost $25,000,000 per year.

100 x 250 x $1000 = $25,000,000

Now we know how much it costs to run a team for one year.

Assuming the team is working on a single value stream or product, budgeting becomes a much simpler tasks. The only thing we need to do is provide a vision for the team and let them build the product focusing on value and maximising ROI. In this example we will allocate $25 million per year to this value stream / product.

However, if we have a complex landscape with multiple in flight initiatives and competing priorities, then budgeting becomes more complicated and we will be required to do some level of small trade-offs between the constraints of the iron triangle. However this will be minimal compared to the traditional approach.

In this situation we have to break down our initiatives to large scale epics or features. Then we can use relative estimation techniques to estimate these epics in story points. And finally based on historical data we will estimate how long the team will take to deliver epics of this size. Then we can easily convert it to dollar values.

For example, if we forecast that based on historical data an initiative will take the team 3 months to deliver then we will immediately know that this initiative is estimated to cost $6,250,000

$25,000,000 / 4 = $6,250,000

This technique provides much more accurate cost estimate compared to traditional work breakdown structure and analysis based approach to estimation. Discussing why this is the case is beyond the scope of this article. I’m planning to write an article on relative estimation soon. So please stay tuned if you are more interested to learn how relative estimation works and why it is more accurate.

Obviously this is an oversimplified version of lean agile budgeting. The actual budgeting and forecasting process is more complex. To learn more about lean-agile budgeting please refer to SAFe® Lean budgets guide or attend one of our courses.

If you’d like to take your learning to the next level please refer to beyond budgeting. This is particularly valuable when articulating funding approaches to finance people.  Beyond budgeting was developed by finance experts and aligns perfectly with Agile ways of working.

Conclusion

  • In agile we invert the iron triangle. Instead of defining what we want to build first and then deriving the cost and schedule we would define our budget and deadline and based on that come up with scope of the product.
  • This is Bad: I want an online car dealership store on WebSphere Commerce. The details of what I want is documented in this 350 page document. When can I have it and how much is it going to cost me?
  • This is good: I have $20 million and I want to be able to sell cars online by end of the year. What can you give me with those constraints?
  • In lean agile funding model instead of having cost centres and funding projects, we fund teams and value streams. This means we are moving from a push approach to a pull approach.
  • If you change your view from “the world is predictable” to “the world is unpredictable”, amazing things will happen.


Comments are closed, but trackbacks and pingbacks are open.